We already set all file mtimes to 0 so that they are constant
over all checkouts, and can be made constant with a known value from
the system where the ostree was created.
However, this was not happening for directories. Zero their mtimes too.
This is important for shipping a fontconfig cache in the ostree;
the fontconfig cache files embed a directory mtime.
}
}
+ /* Set directory mtime to 0, so that it is constant for all checkouts.
+ * Must be done after setting permissions and creating all children.
+ */
+ if (!did_exist)
+ {
+ const struct timespec times[2] = { { 0, UTIME_OMIT }, { 0, } };
+ do
+ res = futimens (destination_dfd, times);
+ while (G_UNLIKELY (res == -1 && errno == EINTR));
+ if (G_UNLIKELY (res == -1))
+ {
+ gs_set_error_from_errno (error, errno);
+ goto out;
+ }
+ }
+
/* Finally, fsync to ensure all entries are on disk. Ultimately
* this should be configurable for the case where we're constructing
* buildroots.
fi
stat '--format=%Y' test2-checkout/baz/cow > cow-mtime
assert_file_has_content cow-mtime 0
+stat '--format=%Y' test2-checkout/baz/deeper > deeper-mtime
+assert_file_has_content deeper-mtime 0
echo "ok content mtime"
cd ${test_tmpdir}